package com.boesch.electroOffice.business.businessObject;

import java.util.List;

import com.boesch.electroOffice.business.common.BusinessException;
import com.boesch.electroOffice.dataaccess.common.IllegalDataAccessException;
import com.boesch.electroOffice.model.electroOffice.Identifier;

public interface IdentifierBusinessObject {

	/**
	 * Returns a Identifier object on the basis of its Id.
	 * If any error occures, a illegalDataAccessException is thrown.
	 * 
	 * @return Identifier identifier
	 * @throws IllegalDataAccessException e
	 */
	public Identifier getIdentifierById(int id) throws BusinessException, IllegalDataAccessException;

	/**
	 * Returns a Identifier object on the basis of its entity and identifier.
	 * If any error occures, a illegalDataAccessException is thrown.
	 * 
	 * @return Identifier identifier
	 * @throws IllegalDataAccessException e
	 */
	public Identifier getIdentifierByEntityAndIdentifier(String entity, String identifier) throws BusinessException, IllegalDataAccessException;

	/**
	 * Returns a list of all identifiers.
	 * If any error occures, a illegalDataAccessException is thrown.
	 * 
	 * @return List<Identifier> identifiers
	 * @throws IllegalDataAccessException e
	 */
	public List<Identifier> readAllIdentifiers() throws BusinessException, IllegalDataAccessException;

	/**
	 * Returns a list of identifiers on the basis of its entity.
	 * If any error occures, a illegalDataAccessException is thrown.
	 * 
	 * @return List<Identifier> identifiers
	 * @throws IllegalDataAccessException e
	 */
	public List<Identifier> readIdentifiersByEntity(String entity) throws BusinessException, IllegalDataAccessException;

	/**
	 * Returns a list of identifiers on the basis of its entity and subentity.
	 * If any error occures, a illegalDataAccessException is thrown.
	 * 
	 * @return List<Identifier> identifiers
	 * @throws IllegalDataAccessException e
	 */
	public List<Identifier> readIdentifiersByEntityAndSubentity(String entity, String subentity) throws BusinessException, IllegalDataAccessException;
}
